#============================================================
#	Task Executor
#============================================================
#  任务执行器
# * 对不同的 Task 类进行扩展，然后添加这个任务进行执行
#============================================================
# @datetime: 2022-5-7 23:06:47
#============================================================
class_name TaskExecutor
extends Node


var _id : int = -1
var _tasks := {}


#============================================================
#   Set/Get
#============================================================
func get_task(id: int) -> BaseTask:
	return _tasks.get(id)


#============================================================
#   内置
#============================================================
func _physics_process(delta: float):
	var task : BaseTask
	for id in _tasks:
		task = _tasks[id]
		task._task_process(delta)


#============================================================
#   自定义
#============================================================
##  添加任务 
## @task  
## @return  返回任务的 Id
func add_task(task: BaseTask) -> int:
	_id += 1
	if _id > 999999:
		_id = 0
	
	_tasks[_id] = task
	task.connect("finished", self, "remove_task", [_id])
	return _id


##  移除任务
## @id  
func remove_task(id: int):
	_tasks.erase(id)


